package controlador;

import interfaces.InterfazRemotaAdministracion;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.util.List;

import javax.swing.JOptionPane;

import dto.CajeroDTO;
import dto.EmpleadoDTO;
import dto.MesaDTO;
import dto.MesaSimpleDTO;
import dto.MozoDTO;
import dto.SectorDTO;


public class BussinesDelegate {
	InterfazRemotaAdministracion objetoRemoto;
	private static BussinesDelegate instancia;

	private BussinesDelegate() {
		getStub();
	}

	public static BussinesDelegate getInstancia() {
		if (instancia == null)
			instancia = new BussinesDelegate();
		return instancia;
	}

	public boolean getStub() {

		try {
			objetoRemoto = (InterfazRemotaAdministracion) Naming
					.lookup(InterfazRemotaAdministracion.url);
			System.out.println("Obtenido el servicio de la Instancia Remota "
					+ InterfazRemotaAdministracion.url);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}
	
	public EmpleadoDTO validarUsuario(String usuario, String password, String tipo) {
		EmpleadoDTO emp = null;
		
		try {
			
			if(tipo.equalsIgnoreCase("Mozo")){
				MozoDTO m =	(MozoDTO) BussinesDelegate.getInstancia().validarUsuario(usuario, password, tipo);
				return m;
			}else if(tipo.equalsIgnoreCase("Emp Produccion")){
			
				EmpleadoDTO e = BussinesDelegate.getInstancia().validarUsuario(usuario, password, tipo);
				return e;
				
			}else if(tipo.equalsIgnoreCase("Cajero")){
				CajeroDTO c = (CajeroDTO) BussinesDelegate.getInstancia().validarUsuario(usuario, password, tipo);
				return c;
			}
			emp = objetoRemoto.validarUsuario(usuario,password, tipo);
			
		} catch (RemoteException e) {
			JOptionPane.showMessageDialog(null, e.getCause().getMessage());
		}
		
		return emp;
	}
	
	
}
